package com.decent.web.system.dao;

import com.decent.web.system.dto.SystemGoodsDTO;
import com.decent.web.system.vo.SystemGoodsVO;
import com.decent.web.system.dao.provider.SystemGoodsDaoProvider;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * @author: decent Gjh
 * @date: 2022/10/25/19:01
 * @description:
 */
@Mapper
public interface SystemGoodsDao {


    /**
     * 查询品牌
     * @param goodsDTO 过滤信息
     * @return 品牌列表
     */
    @SelectProvider(type = SystemGoodsDaoProvider.class, method = "list")
    List<SystemGoodsVO> selectGoods(@Param("goods") SystemGoodsDTO goodsDTO);

    /**
     * 根据id查询商品
     * @param goodsId 商品id
     * @return 商品信息
     */
    @Select("select * from common_goods where id = #{id} ")
    SystemGoodsVO selectGoodsById(@Param("id") int goodsId);

    /**
     * 更新库存和销量
     * @param id 商品id
     * @param num 销售数量
     */
    @Update("update common_goods set stock = stock -#{num} ,sales = sales + #{num} ,update_datetime = now() where id = #{id}")
    void buyGoods(int id, int num);

    /**
     * 查找热门商品
     * @return 热门商品列表
     */
    @Select("SELECT * FROM common_goods ORDER BY sales DESC LIMIT 15")
    List<SystemGoodsVO> selectHotGoods();
}
